<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/01-Linux%E5%8F%91%E5%B1%95%E4%BB%8B%E7%BB%8D/">01-Linux发展介绍</a>
      </h2>
      <p class="article-date">2020年4月6日</p>
      
        
  <a href="/tags#Linux" >
    <span class="tag-code">Linux</span>
  </a>

      
      <div class="article-summary">
        
          零 什么是LinuxLinux:和我们常见的Windows一样，都是操作系统，但不同的是:Windows: 收费，不开源，主要用于日常办公、游戏、娱乐多一些。Linux: 免费，开源，主要用于服务器领域，性能稳定，安全。例如:淘宝、百度、腾讯等互联网公司，他们使用的服务器全都是 Linux  ...
        
      </div>
      <a class="more" href="/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/01-Linux%E5%8F%91%E5%B1%95%E4%BB%8B%E7%BB%8D/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/db/Mongodb%E7%B3%BB%E5%88%97/Mongodb%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/">db/Mongodb系列/Mongodb快速入门</a>
      </h2>
      <p class="article-date">2020年4月1日</p>
      
      <div class="article-summary">
        
          Mongodb一 简介MongoDB是一款强大、灵活、且易于扩展的通用型数据库
1.1 易用性1234MongoDB是一个面向文档（document-oriented）的数据库，而不是关系型数据库。不采用关系型主要是为了获得更好得扩展性。当然还有一些其他好处，与关系数据库相比，面向文档的数据 ...
        
      </div>
      <a class="more" href="/db/Mongodb%E7%B3%BB%E5%88%97/Mongodb%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/go/7-%E5%85%B6%E4%BB%96/06-go-get-golang.org:x-%E5%8C%85%E5%A4%B1%E8%B4%A5/">06-go get golang.org/x 包失败</a>
      </h2>
      <p class="article-date">2020年4月1日</p>
      
        
  <a href="/tags#Go" >
    <span class="tag-code">Go</span>
  </a>

      
      <div class="article-summary">
        
          一 问题背景当我们使用 go get、go install、go mod 等命令时，会自动下载相应的包或依赖包。但由于众所周知的原因（科学上网），类似于 golang.org/x/... 的包会出现下载失败的情况。如下所示：
12345//go get下载包go get -u golang. ...
        
      </div>
      <a class="more" href="/go/7-%E5%85%B6%E4%BB%96/06-go-get-golang.org:x-%E5%8C%85%E5%A4%B1%E8%B4%A5/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/5-Python%E4%B8%AD%E5%A4%9A%E8%BF%9B%E7%A8%8B/">5-Python中多进程</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          
        
      </div>
      <a class="more" href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/5-Python%E4%B8%AD%E5%A4%9A%E8%BF%9B%E7%A8%8B/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/4-Python%E4%B8%AD%E5%A4%9A%E7%BA%BF%E7%A8%8B/">4-Python中多线程</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          
        
      </div>
      <a class="more" href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/4-Python%E4%B8%AD%E5%A4%9A%E7%BA%BF%E7%A8%8B/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/2-%E8%BF%9B%E7%A8%8B%E7%BA%BF%E7%A8%8B%E4%B8%8E%E5%8D%8F%E7%A8%8B/">2-进程线程与协程</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          1 进程进程是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位，重点在系统调度和单独的单位，也就是说进程是可以独 立运行的一段程序
2 线程线程是进程的一个实体，是CPU调度和分派的基本单位，他是比进程更小的能独立运行的基本单位，线程自己基本上不拥有系统资源。在运行时，只是暂 ...
        
      </div>
      <a class="more" href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/2-%E8%BF%9B%E7%A8%8B%E7%BA%BF%E7%A8%8B%E4%B8%8E%E5%8D%8F%E7%A8%8B/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/9-Python%E5%BC%82%E6%AD%A5%E5%BA%93%E4%B9%8Btornado/">9-Python异步库之tornado</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          
        
      </div>
      <a class="more" href="/python/Python%E5%BC%82%E6%AD%A5IO%E5%B9%B6%E5%8F%91/9-Python%E5%BC%82%E6%AD%A5%E5%BA%93%E4%B9%8Btornado/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/10-%E8%BF%9B%E7%A8%8B%E9%97%B4%E6%95%B0%E6%8D%AE%E5%85%B1%E4%BA%AB(multiprocess.Manager)/">1-Python中的GIL</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          一、进程之间的数据共享展望未来，基于消息传递的并发编程是大势所趋
即便是使用线程，推荐做法也是将程序设计为大量独立的线程集合，通过消息队列交换数据。
这样极大地减少了对使用锁定和其他同步手段的需求，还可以扩展到分布式系统中。
但进程间应该尽量避免通信，即便需要通信，也应该选择进程安全的工具来 ...
        
      </div>
      <a class="more" href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/10-%E8%BF%9B%E7%A8%8B%E9%97%B4%E6%95%B0%E6%8D%AE%E5%85%B1%E4%BA%AB(multiprocess.Manager)/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/12-%E7%BA%BF%E7%A8%8B%E5%9F%BA%E7%A1%80/">1-Python中的GIL</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          一、线程概念的引入背景1.1 进程之前我们已经了解了操作系统中进程的概念，程序并不能单独运行，只有将程序装载到内存中，系统为它分配资源才能运行，而这种执行的程序就称之为进程。程序和进程的区别就在于：程序是指令的集合，它是进程运行的静态描述文本；进程是程序的一次执行活动，属于动态概念。在多道编 ...
        
      </div>
      <a class="more" href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/12-%E7%BA%BF%E7%A8%8B%E5%9F%BA%E7%A1%80/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/13-%E8%BF%9B%E7%A8%8B%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/">1-Python中的GIL</a>
      </h2>
      <p class="article-date">2020年3月25日</p>
      
        
  <a href="/tags#Python" >
    <span class="tag-code">Python</span>
  </a>

      
      <div class="article-summary">
        
          一、进程和线程的关系
线程与进程的区别可以归纳为以下4点：

地址空间和其它资源（如打开文件）：进程间相互独立，同一进程的各线程间共享。某进程内的线程在其它进程不可见。
通信：进程间通信IPC，线程间可以直接读写进程数据段（如全局变量）来进行通信——需要进程同步和互斥手段的辅助，以保证数据的 ...
        
      </div>
      <a class="more" href="/python/Python%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/13-%E8%BF%9B%E7%A8%8B%E5%92%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB/">详情...</a>
    </article>
  

  
    <div class="guide-pager">
  
    <a href="/page/21/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/23/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>


    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>